Skip to content

ospf: RFC 9129 ietf-ospf YANG support (operational state + config-write)#22058

Open
lamestllama wants to merge 45 commits into
FRRouting:masterfrom
lamestllama:ospfd-yang-rfc9129-v2
Open

ospf: RFC 9129 ietf-ospf YANG support (operational state + config-write)#22058
lamestllama wants to merge 45 commits into
FRRouting:masterfrom
lamestllama:ospfd-yang-rfc9129-v2

Conversation

@lamestllama
Copy link
Copy Markdown

@lamestllama lamestllama commented May 25, 2026

Overview

Adds RFC 9129 ietf-ospf YANG support for the implemented FRR-backed
OSPFv2 and OSPFv3 subset through mgmtd.

The implementation is anchored on the IETF model. FRR-specific behaviour stays
on the existing CLI surface unless there is a concrete FRR-native augment with
callbacks.

This PR provides the OSPF YANG model integration, callback wiring, mgmtd
dispatch support needed for the shared OSPFv2/OSPFv3 subtree, RPC callbacks,
notifications, user documentation and developer notes.

This PR implements the OSPF YANG RPC callbacks and notification emitters. It
does not implement the generic gRPC transport methods that invoke or subscribe
to them.

Generic gRPC Execute and Subscribe support through mgmtd is handled in
#22158. When #22158 is present, external gRPC clients can use Execute to call
the OSPF RPC callbacks from this PR and Subscribe to receive the OSPF
notifications emitted by this PR. Without #22158, those OSPF RPCs and
notifications are still available through the mgmtd/vtysh-facing machinery
described below. This PR does not depend on #22158.

What This PR Provides

Operators get broad RFC 9129 YANG configuration, RPC and operational state
coverage for the implemented FRR-backed OSPF subset.

The supported mgmtd-facing surfaces are:

  • vtysh through mgmt set-config, mgmt rpc and mgmt commit apply
  • the mgmtd frontend socket binary protocol
  • daemon-backed operational state, RPC and notification callbacks registered
    with mgmtd

The gRPC Execute and Subscribe methods are not part of this PR. They are
transport support for reaching these same YANG RPC callbacks and notification
emitters from external gRPC clients, and are covered by #22158.

The OSPFv2 and OSPFv3 implementations share the RFC 9129
control-plane-protocol subtree. Requests are routed to the correct daemon by
matching the predicated protocol entry, for example the OSPFv2 or OSPFv3
type and name keys.

Architecture

RFC 9129 puts OSPFv2 and OSPFv3 under the shared RFC 8349
control-plane-protocol list, distinguished by type and name keys. That is
the standard shape, but it means ospfd and ospf6d share one schema subtree
and must receive only the requests that belong to their daemon and instance.

The series adds reusable infrastructure for that shape:

Area Purpose
Operational callbacks with suppressed config callbacks Allows operational callbacks on modules that suppress config callbacks.
Per-node config opt-in Lets selected writable nodes in a mostly suppressed standard module opt into config callbacks.
Batched daemon config-file loads Gives daemon-direct startup files the same single-transaction semantics vtysh already gets.
Predicate-aware backend xpath matching Lets backends register predicated list entries such as control-plane-protocol[type='ietf-ospf:ospfv2'].

For multi-instance OSPFv2, backend client names are made instance-aware:
non-instanced daemons keep their existing names, while instanced daemons append
the decimal instance ID, such as ospfd-1 or ospfd-2. The RFC 9129 protocol
name in instance mode is the decimal instance ID.

Configuration Coverage

Per-instance leaves:

RFC 9129 path OSPFv2 OSPFv3 Notes
explicit-router-id yes yes
preference/{all,intra-area,inter-area,internal,external} yes yes RFC internal maps onto intra/inter-area distances.
spf-control/paths yes yes Capped at MULTIPATH_NUM.
auto-cost/{enabled,reference-bandwidth} yes yes FRR has no off-switch, so enabled=false is rejected at validation.
mpls/ldp/igp-sync yes N/A ospf6d has no LDP/IGP-sync.
mpls/te-rid/ipv4-router-id yes N/A ospf6d has no MPLS-TE.
graceful-restart/{enabled,restart-interval,helper-enabled,helper-strict-lsa-checking} yes yes
stub-router/always yes N/A ospf6d has no stub-router.

Per-area:

RFC 9129 path OSPFv2 OSPFv3
areas/area lifecycle yes yes
area/area-type normal, stub and NSSA yes yes
area/summary yes yes
area/default-cost yes N/A
area/ranges/range, advertise and cost yes yes

Per-interface:

RFC 9129 path OSPFv2 OSPFv3
interfaces/interface area attachment yes yes
interface/cost yes yes
interface/{hello,dead,retransmit}-interval yes yes
interface/priority yes yes
interface/mtu-ignore yes yes
interface/transmit-delay yes yes
interface/interface-type yes yes
interface/passive yes yes
interface/prefix-suppression yes N/A
interface/bfd/{enabled,local-multiplier,desired-min-tx-interval,required-min-rx-interval} yes yes
interface/static-neighbors/neighbor, poll-interval and priority yes N/A
interface/authentication/ospfv2-key-chain / ospfv3-key-chain yes yes

RPCs

RFC 9129 RPC OSPFv2 OSPFv3 Notes
clear-neighbor yes yes Whole-instance and per-interface variants.
clear-database yes yes Maps onto ospf{,6}_process_reset.

Notifications

RFC 9129 notification OSPFv2 OSPFv3 Source
nbr-state-change yes yes ospf_nsm_change / ospf6_neighbor_change hooks
if-state-change yes yes ospf_ism_change / ospf6_interface_change hooks
restart-status-change yes yes Direct emit from GR enter and exit
nbr-restart-helper-status-change yes yes Direct emit from GR helper enter and exit
if-rx-bad-packet yes yes Post-header-validation failure path
if-config-error yes yes Hello/dead interval mismatch checks
nssa-translator-status-change yes N/A ABR NSSA translator transition
lsdb-{approaching-,}overflow N/A N/A FRR has no max-LSA threshold matching this model.

The graceful-restart notifications are covered by live OSPFv2 and OSPFv3
topotests that trigger real GR prepare, helper observation and daemon restart
flows.

Out of Scope

Documented in doc/developer/ospf-yang-northbound-notes.rst.

The deviation module advertises the implemented surface. Unsupported leaves are
hidden, constrained to the daemon that implements them, or rejected by schema
validation.

Deferred because there is no matching FRR surface, the FRR surface has a
different shape, or the RFC 9129 path needs a separate future mapping:

  • Redistribution and default-information-originate
  • Virtual links
  • OSPFv3 interface instance-id
  • Per-address OSPFv2 interface overrides
  • FRR-specific NSSA knobs
  • ospf/nsr
  • database-control/max-lsa
  • spf-control/ietf-spf-delay
  • node-tag-config
  • interface/{enabled,multi-areas,ttl-security}
  • ospf/enabled
  • OSPFv3 address families other than ipv6
  • mpls/te-rid/ipv6-router-id
  • per-interface fast-reroute/lfa
  • non-key-chain authentication forms

Related Work

Two earlier OSPF YANG attempts shaped the choices here:

FRR also has an experimental YANG-module translator for mapping non-native
models onto native FRR models via deviation modules and XPath translation
tables. This PR does not use it because OSPF does not yet have a complete
callback-backed native OSPF YANG model to serve as the source of truth. RFC
9129 is implemented directly as the canonical northbound surface for the OSPF
behaviour it covers.

Documentation

  • doc/user/ospfd.rst and doc/user/ospf6d.rst: supported leaves,
    daemon-instance naming and worked mgmt set-config / mgmt commit apply
    examples.
  • doc/developer/ospf-yang-northbound-notes.rst: RFC 9129 design choice,
    predicate-aware dispatch, startup batching, validation approach,
    notification wiring and future FRR-native augment boundaries.

IETF Module Sources

ietf-ospf.yang, ietf-routing.yang, ietf-bfd-types.yang,
iana-routing-types.yang and iana-bfd-types.yang are pulled from their
respective RFCs unchanged, with the IETF Trust BSD licence text.

This follows the existing handling of ietf-interfaces.yang,
ietf-key-chain.yang and ietf-routing-types.yang already in yang/ietf/.

Commit Organisation

The series is organised so that reusable infrastructure lands before the OSPF
callbacks that depend on it:

  1. Reusable lib and mgmtd infrastructure.
  2. RFC 9129 operational state.
  3. Per-leaf config-write support and matching legacy CLI conversions.
  4. RFC 9129 RPC callbacks.
  5. RFC 9129 notification callbacks.
  6. User and developer documentation.

Each commit is intended to be reviewable in isolation.

@Jafaral
Copy link
Copy Markdown
Member

Jafaral commented May 25, 2026

Please stop closing/opening PRs for the same changes. Update your branch and force push to the same PR.

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 25, 2026

Greptile Summary

This PR adds RFC 9129 ietf-ospf YANG northbound support to FRR, providing operational state, configuration callbacks, RPC handlers, and notification emitters for both OSPFv2 and OSPFv3. The implementation introduces predicate-aware mgmtd backend dispatch, per-node config opt-in, and batched daemon startup semantics to support the shared control-plane-protocol subtree pattern.

  • mgmtd dispatch — A new predicate-aware mgmt_be_xpath_prefix matcher routes ietf-ospf:ospfv2 and ietf-ospf:ospfv3 list entries to the correct daemon, replacing the legacy prefix-only matcher for registered paths that carry predicates.
  • Config/RPC/notification callbacksospfd and ospf6d each gain ~2,200-line configuration callback modules, ~130-line RPC modules (clear-neighbor, clear-database), ~400-line notification modules wired to the existing NSM/ISM/GR hooks, and ~450-line operational-state modules.
  • YANG deviation modulefrr-deviations-ietf-routing-ospf.yang advertises the implemented surface and constraints, suppressing unsupported RFC 9129 leaves.

Confidence Score: 4/5

PR is safe to merge; all previously flagged P0/P1 issues have been resolved in this revision.

All critical bugs identified in prior review rounds (use-after-free on radix glue nodes, virtual-link validation timing, NULL dereferences in interface/BFD callbacks, stale dead-interval timer, atomic interface-area-move race, P2MP state suppression in OSPFv3, multi-instance wrong-XPath, missing destroy callbacks) are addressed. The predicate-aware mgmtd dispatch is logically sound. One point deducted because the changeset is very large (~6000 lines across 88 files) with limited test coverage visible in the diff, and the new cfg_opt_in/F_NB_NODE_IGNORE_CFG_CBS interaction in northbound.c is a subtle infrastructure change that warrants careful integration testing.

ospfd/ospf_nb_config.c and mgmtd/mgmt_be_adapter.c warrant the closest integration testing — the config callback file is the largest and most complex new file, and the predicate-aware XPath dispatch is new infrastructure with broad impact.

Important Files Changed

Filename Overview
ospfd/ospf_nb_config.c New ~2883-line config callback file for RFC 9129 OSPFv2; previously flagged P1 issues (use-after-free on radix glue nodes, virtual-link check timing, NULL dereference in interface callbacks, stale dead-interval timer) are all resolved in this revision.
ospf6d/ospf6_nb_config.c New ~2221-line config callback file for RFC 9129 OSPFv3; atomic interface-area-move fix mirrors OSPFv2; area-type modify correctly omits virtual-link guard since ospf6_area_stub_set unconditionally returns 1.
mgmtd/mgmt_be_adapter.c Adds predicate-aware XPath dispatch so mgmtd can route control-plane-protocol[type='ietf-ospf:ospfv2'] vs ospfv3 requests to the correct backend daemon; missing query predicate treated as wildcard, conflicting value rejects match.
ospfd/ospf_nb_notifications.c New notification file; ISM/NSM/GR-reason enum remapping to RFC 9129 values is correct via designated initializers; GR exit-reason table maps TOPO_CHG(2)→5, COMPLETED(4)→3 as required by the YANG enum.
ospf6d/ospf6_nb_notifications.c New notification file for OSPFv3; P2MP interface state (previously suppressed) is now mapped to RFC point-to-point(4), consistent with OSPFv2 behavior; GR exit-reason remapping matches OSPFv2.
ospfd/ospf_nb_rpcs.c New RPC handlers for clear-neighbor and clear-database; non-owner instances return NB_OK silently; optional interface narrowing is safe with proper NULL checks.
ospf6d/ospf6_nb_rpcs.c New RPC handlers for OSPFv3 clear-neighbor and clear-database; uses if_lookup_by_name_vrf with ifp->info null check before proceeding, safe pattern.
lib/northbound.c Removes F_NB_NODE_IGNORE_CFG_CBS guards from operational-state callbacks, replacing with explicit null-pointer guards; adds cfg_opt_in per-node processing in nb_load_callbacks to allow modules to selectively opt in to config callbacks.
ospfd/ospf_nb.c Both hello_interval and dead_interval now have registered destroy callbacks; cfg_opt_in=true set for per-interface leaves; resolves previously flagged missing-destroy P1.
ospfd/ospf_vty.c ospf_per_iface_xpath now traverses oii->oifs backpointers instead of ifp->vrf->info to correctly identify the OSPF instance in multi-instance setups; resolves previously flagged P1 wrong-instance XPath.

Sequence Diagram

sequenceDiagram
    participant CLI as CLI / NETCONF
    participant mgmtd as mgmtd
    participant adapter as mgmt_be_adapter
    participant ospfd as ospfd northbound
    participant nb as lib/northbound
    participant ospf as OSPF core

    CLI->>mgmtd: YANG set/get on ietf-ospf XPath
    mgmtd->>adapter: mgmt_be_xpath_prefix(xpath, client)
    alt xpath contains predicates
        adapter->>adapter: mgmt_be_xpath_predicates_compatible()
        adapter-->>mgmtd: match / no-match
    else legacy xpath (no predicates)
        adapter->>adapter: mgmt_be_xpath_prefix_legacy()
        adapter-->>mgmtd: match / no-match
    end
    mgmtd->>ospfd: send candidate config transaction

    ospfd->>nb: nb_candidate_commit()
    nb->>nb: nb_callback_configuration()
    nb->>ospfd: NB_EV_VALIDATE
    nb->>ospfd: NB_EV_PREPARE
    nb->>ospfd: NB_EV_APPLY
    ospfd->>ospf: ospf_if_update / ospf_nbr_reset

    ospf-->>ospfd: hook_call(ospf_ism_change)
    ospfd->>ospfd: ospfd_ietf_if_state_change()
    ospfd->>nb: nb_op_update_notif(if-state-change)
    nb-->>mgmtd: YANG notification stream

    ospf-->>ospfd: hook_call(ospf_nsm_change)
    ospfd->>ospfd: ospfd_ietf_nbr_state_change()
    ospfd->>nb: nb_op_update_notif(nbr-state-change)
    nb-->>mgmtd: YANG notification stream
Loading

Reviews (40): Last reviewed commit: "ospfd,ospf6d: harden OSPF notification m..." | Re-trigger Greptile

Comment thread ospfd/ospf_nb_config.c Outdated
@lamestllama lamestllama force-pushed the ospfd-yang-rfc9129-v2 branch from 5b9699b to 4b9886d Compare May 25, 2026 01:43
Comment thread ospfd/ospf_nb_config.c
@lamestllama lamestllama force-pushed the ospfd-yang-rfc9129-v2 branch from 4b9886d to 1bfe80e Compare May 25, 2026 02:06
Comment thread ospfd/ospf_nb_config.c Outdated
Comment thread ospf6d/ospf6_nb_config.c Outdated
@lamestllama lamestllama force-pushed the ospfd-yang-rfc9129-v2 branch 3 times, most recently from ed9b4d6 to 05b4fac Compare May 25, 2026 03:20
@lamestllama lamestllama marked this pull request as ready for review May 25, 2026 04:42
@lamestllama lamestllama marked this pull request as draft May 25, 2026 06:10
@riw777 riw777 self-requested a review May 25, 2026 11:51
@lamestllama lamestllama force-pushed the ospfd-yang-rfc9129-v2 branch 2 times, most recently from 32dcdb3 to c48c147 Compare May 25, 2026 12:39
@frrbot frrbot Bot added the mgmt FRR Management Infra label May 25, 2026
@lamestllama lamestllama force-pushed the ospfd-yang-rfc9129-v2 branch 4 times, most recently from c1ac4db to af790dd Compare May 25, 2026 22:44
@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 25, 2026

Want your agent to iterate on Greptile's feedback? Try greploops.

@lamestllama lamestllama force-pushed the ospfd-yang-rfc9129-v2 branch 2 times, most recently from 777454f to ada554e Compare May 26, 2026 00:32
@frrbot frrbot Bot added the ospfv3 label May 26, 2026
@lamestllama lamestllama force-pushed the ospfd-yang-rfc9129-v2 branch from e5b76ea to 2a634e7 Compare May 26, 2026 05:21
Add startup coverage for config-file batching.  The fixture uses
dependent OSPF configuration that succeeds only when the file is
committed as one northbound transaction.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Document the RFC 9129 config-write surface implemented by ospfd and
ospf6d, including the mapping to native daemon objects and the current
boundary of supported writes.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Keep control-plane-protocol parent entries in the northbound candidate
while OSPF child configuration exists.  Same-transaction child edits
can then resolve the daemon instance during validation and apply.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Add config-write support for RFC 9129 interface transmit-delay.
The leaf maps directly to the existing OSPF interface parameter and
is restored to the daemon default on delete.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Convert OSPFv2 interface timer CLI commands to write the RFC 9129
timer leaves.  The CLI path now uses the same YANG validation as
mgmtd writes.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Add coverage for CLI commands that now route through ietf-ospf
callbacks. The tests write through vtysh, check the resulting state,
and delete the configuration again.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Implement RFC 9129 spf-control path limit writes for both OSPF
daemons. The callbacks map the standard leaves to FRR maximum-paths
state.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Add OSPFv2 config-write support for RFC 9129 MPLS LDP IGP sync.
The leaf maps to ospfd's existing LDP sync integration.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Implement the RFC 9129 stub-router always knob for OSPFv2.  The
callback updates the native state used to advertise the router as
non-transit.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Add config-write support for prefix suppression on OSPF interfaces.
The callbacks update the existing daemon interface state that controls
prefix advertisement.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Implement RFC 9129 auto-cost reference-bandwidth writes for both
OSPF daemons.  The deviation module pins enabled to true, matching
FRR's runtime auto-cost behaviour.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Add OSPFv2 config-write support for the RFC 9129 MPLS TE
router ID leaf. The callback maps the standard node to ospfd's
traffic-engineering router-id state.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Implement the RFC 9129 graceful-restart restarter configuration for
OSPFv2 and OSPFv3.  The callbacks update the native restart support,
grace period and reason fields.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Implement the RFC 9129 graceful-restart helper configuration for
both OSPF daemons.  The callbacks map helper enablement and strict
LSA checking onto FRR helper state.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Document the RFC 9129 nodes outside this config-write slice.  The list
records which nodes need daemon support, deviations or later schema
work.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
ospf6_route_remove_all() can trigger hooks while walking route
tables. Snapshot the routes before applying removals so hook re-entry
cannot invalidate the iterator being used by the removal pass.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Implement the RFC 9129 ietf-bfd-types client-cfg-parms surface for
per-interface OSPF BFD configuration. The callbacks map enablement,
local multiplier, desired transmit interval and required receive
interval onto the existing daemon BFD state.

ospfd stores the configured parameters separately from the active BFD
session options, while ospf6d embeds its BFD configuration in the
interface object. Promote the needed helper entry points so both
daemons can update their native state through the same YANG container
apply_finish pattern.

Keep `[quick]` and `[profile X]` as legacy-CLI-only forms for now.
They do not have an RFC 9129 equivalent in this subtree and need a
future FRR-native augment if they are to become standard northbound
configuration.

Convert the RFC millisecond values to the daemon-side units used by
each implementation, clamp the supported interval range in the
deviation module, and mark the unsupported single-interval form
not-supported.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Implement RFC 9129 NBMA static-neighbor writes for ospfd. The model
keys neighbours by area, interface and identifier, while FRR stores
NBMA neighbours per OSPF instance and IPv4 address.

Keep the area and interface labels in the YANG subtree but apply only
the identifier, poll-interval and priority to the daemon's native
neighbour entry. VALIDATE rejects duplicate identifiers across the
instance because they would collapse onto the same FRR-side neighbour.

Mark cost not-supported in the deviation module, since FRR has no NBMA
cost knob. Leave the legacy `neighbor A.B.C.D` CLI on its direct
mutation path because it is instance-level and cannot manufacture a
credible RFC 9129 area or interface key.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Implement the key-chain case of RFC 9129 per-interface authentication
for OSPFv2 and OSPFv3. The callbacks map the standard key-chain leaves
to the existing FRR authentication command state and rely on the RFC
leafrefs to validate that the referenced key chain exists.

Leave the explicit-key triplet, IPsec SA and auth-trailer-rfc branches
out of this slice. They remain available through the legacy CLI, but
the YANG leaves are marked not-supported by deviation so mgmtd rejects
unsupported writes at validation time.

For OSPFv3, reject key-chain writes at VALIDATE when a manual key is
already configured. This matches the legacy CLI conflict rule in
ospf_vty.c and keeps CLI and mgmtd writes on the same daemon contract.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Publish the shared ietf-bfd-types module information from lib.
Backends that use the same standard typedefs can reuse the common
module registration.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Extend the developer notes with RFC 9129 nodes that lack matching FRR
daemon support or need later schema work.  This records the intended
branch boundary for reviewers.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Centralise repeated instance and interface callback resolution for
the OSPF YANG config callbacks.

Use container apply_finish for BFD and list-entry apply_finish for
static-neighbors. Keep destroy callbacks away from defaulted leaves,
clear both regular and NSSA ranges before area teardown, and preserve
the RFC 9129 deviations for unsupported leaves.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Implement the RFC 9129 clear-neighbor and clear-database RPCs for
both OSPF daemons.  RPC dispatch resolves the routing protocol and
optional interface before invoking the native clear operation.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Emit RFC 9129 nbr-state-change notifications from the existing OSPFv2
and OSPFv3 neighbour state transition paths.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Emit RFC 9129 if-state-change notifications from the existing OSPF
interface state transition paths.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Emit RFC 9129 graceful-restart restart-status-change and
restart-helper-status-change notifications from the existing graceful
restart paths.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Emit RFC 9129 if-rx-bad-packet and if-config-error notifications from
the existing packet receive and configuration mismatch paths.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
Emit the RFC 9129 NSSA translator status notification from the OSPFv2
translator path and tighten the shared notification state mappings.

Use table-driven translations for neighbour, interface and graceful
restart helper states while preserving the daemon-specific lifecycle,
DR/BDR and graceful-restart values required by RFC 9129.

Signed-off-by: Eric Parsonage <eric@eparsonage.com>
@lamestllama lamestllama force-pushed the ospfd-yang-rfc9129-v2 branch from 303240d to 8e6b47b Compare June 5, 2026 01:29
@lamestllama
Copy link
Copy Markdown
Author

@greptile[bot] review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation libfrr master mgmt FRR Management Infra ospf ospfv3 rebase PR needs rebase size/XXL tests Topotests, make check, etc

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants